package com.clay.appointment.service;

import com.clay.appointment.common.page.PageInfo;
import com.clay.appointment.entity.hospital.Hospital;
import com.clay.appointment.vo.hospital.HospitalQueryVo;

import java.util.List;
import java.util.Map;

/**
 * @Author : clay
 * @Description:
 * @Date: Create in 21:49 2021/7/30
 * @Modified By:
 */
public interface HospitalService {


    /**
     * @param parameterMap 数据
     * @Description 上传医院接口
     */
    void save(Map<String, Object> parameterMap);

    Hospital getHospitalByHospitalCode(String hospitalCode);

    /**
     * 根据分页和查询条件查询数据
     *
     * @param page            当前页
     * @param limit           每页记录数
     * @param hospitalQueryVo 查询条件
     * @return 分页数据
     */
    PageInfo<Hospital> selectPage(Integer page, Integer limit, HospitalQueryVo hospitalQueryVo);

    /**
     * 根据医院id修改医院状态
     * @param id     医院id
     * @param status 要修改成的状态
     */
    void updateStatus(String id, boolean status);

    /**
     * 根据id获取医院实体
     * @param id 医院编号
     * @return 返回医院详情信息
     */
    Hospital getHospitalById(String id);

    /**
     * 根据医院编号获取医院名称
     *
     * @param hospitalCode 医院编号
     * @return 医院姓名
     */
    String getHospitalNameByHospitalCode(String hospitalCode);

    /**
     * 根据医院名模糊查询医院
     *
     * @param hospitalName 医院名
     * @return 医院对象集合
     */
    List<Hospital> findByLikeHospitalName(String hospitalName);


    /**
     * 医院预约挂号详情
     * @param hospitalCode  医院
     * @return 封装医院详情的map
     */
    Map<String, Object> item(String hospitalCode);
}
